home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 July / EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso / earcd / util / rexx / yarselec.lha / YARSelector.doc next >
Text File  |  1997-02-25  |  6KB  |  173 lines

  1.                              YARSelector
  2.                              -----------
  3.  
  4. Disclaimer
  5. ----------
  6.  
  7. This script is a work of only three hours. It ist not tested very well
  8. and it may not work under strange circumstances.
  9.  
  10. So use it ON YOUR OWN RISK, if you want, or let it be!
  11.  
  12. This script is freeware, so you can use it, change it, delete it, get
  13. inspired from it or print it in poster size to wallpaper your room
  14. with it.
  15.  
  16.  
  17. What is it for?
  18. ---------------
  19.  
  20. I found some days ago a program called 'RNDPat' in AMINET. This
  21. program random selects pictures from a given dir and generates a
  22. WBPattern-Prefsfile to randomly show background pictures on WB.
  23.  
  24. But as any other program random selecting things, it selects some
  25. pictures more often, than others and some are shown very rarely.
  26.  
  27. So I had the idea to add every shown picture to a list and the next
  28. time, the program executes, it scans this list and excludes all shown
  29. pictures from the next random choice. So it selects a picture only if
  30. it was not shown before. Of course, if all pictures were shown, the
  31. procedure should repeat.
  32.  
  33. I wrote this suggestion to the author but he answered, that he don't
  34. want to write on disk during startup.
  35.  
  36. But I want! And so I wrote this tiny script.
  37.  
  38. So, if you also don't have these scruples, you may use this program,
  39. see ALL of your beautiful pics and don't get bored anymore. :-}
  40.  
  41.  
  42. Installation/Usuage
  43. -------------------
  44.  
  45. The script is not very comfortable, but since you normally setup it
  46. one time and never again (until you remove it), this should be no
  47. problem.
  48.  
  49. At first you copy the script anywhere, you want - in the following
  50. example it is located in REXX: .
  51.  
  52. Then you add a line to your user-startup:
  53.  
  54. REXXC:RX Rexx:YARSelector.rexx WBDIR <dir> WINDIR <dir> SCRDIR <dir>...
  55.                            ... PREFSFILE <file> REMAP <TRUE/FALSE>
  56.  
  57. All option keywords must be given, they have to be uppercase (!) and
  58. they must have the same order as above.
  59.  
  60. Sorry, but there is NO ParseArg() function in any of these RexxLibs
  61. flying around, even though it would be so easy to implement it.
  62.  
  63.   Options: WBDIR     - directory for the WB-Window background pictures
  64.  
  65.            WINDIR    - directory for the drawer windows
  66.  
  67.            SCRDIR    - directory for the WB-Screen
  68.  
  69.            PREFSFILE - the prefs file to be created, normally this
  70.                        should be 'ENV:Sys/WBPattern.prefs'
  71.  
  72.            REMAP     - if TRUE, the pictures get remapped before shown
  73.                        to get the best possible colours - if set to
  74.                        FALSE, the pictures should have the same
  75.                        palette as WB, otherwise they may look very
  76.                        strange - on the other hand this is faster
  77.  
  78. Because IPrefs notifies any change to the prefs files, you can run the
  79. script as often as you want to get new BG-pics.
  80.  
  81. IPrefs automatically reads the new Prefs-File and displays the new
  82. pictures.
  83.  
  84. BTW: If you remove all the lines between the two asterisk-comments you
  85.      can use the rest of the script as an empty REXX-script with a nice
  86.      error handling procedure and an ende()-Routine to end a script,
  87.      optionally opening a requester and/or quit with an given
  88.      Return-Code.
  89.  
  90.      Example for ende(): call ende("Hello world",5)
  91.  
  92.  
  93. Internas
  94. --------
  95.  
  96. Here are the most important facts about the WBPattern-Prefs file to
  97. understand, how the script works. Not all bytes of the prefs file are
  98. explained, because I also have no complete description of it's contens
  99. and I only spend my time to find out the parts relating to my program:
  100.  
  101.   The first bytes:
  102.  
  103. > 464f524d 00000132 50524546 50524844 00000006 00000000 0000
  104.   F O R M  ^Length^ P R E F  P R H D  ^Length^
  105.            |                          |
  106.            (FORM-Chunk)               (PRHD-Chunk)
  107.  
  108.   Starting with position 27 (dec.), (normally) three PTRN-Chunks are
  109.   saved, which describe the options for the background pictures for
  110.   Workbench, Screen and Windows:
  111.  
  112. > 5054 524e0000 00580000 00000000 00000000 00000000 00000000
  113.   P T  R N ^^Length^                                      1)
  114.            |
  115.            (PTRN-Chunk)
  116.  
  117.   1) 00 - Workbench   01 - Window   02 - Screen
  118.  
  119. > 00110002 003Exxxx xxxxxxxx ...
  120.     2)     ^3)^
  121.  
  122.   2) 00 - Picture/REMAP   01 - Pattern/REMAP
  123.      10 - Picture/NOREMAP 11 - Pattern/NOREMAP
  124.  
  125.   3) Length Filename/Pattern
  126.  
  127.   After 3) appears the name of the picture to be shown or the
  128.   description for the pattern. The pattern is saved with two bytes per
  129.   line and 16 bytes vertically. The first 32 bytes represent the first
  130.   bitmap, the next 32 bytes store the second bitmap and so on.
  131.  
  132.   If the chunk stores a filename with an odd number of characters, at
  133.   3) the correct length is saved, but since all IFF-Chunks must have an
  134.   even number of bytes (complete words), a zero-byte is added after the
  135.   filename.
  136.  
  137.   At this point the next PTRN-Chunk is saved and so on.
  138.  
  139.  
  140. Bugs/History/Future
  141. -------------------
  142.  
  143. WHAT?!
  144.  
  145. Ok, ok - let's say, if you found a bug or the script doesn't work, you
  146. can email me and I try to help you to get the script working.
  147.  
  148. But if you want huge improvements or numerous updates - please write
  149. them yourself - for my needs the script is complete and it works fine
  150. on my computer.
  151.  
  152.  
  153. Author
  154. ------
  155.  
  156. Of course it would be nice to hear from you, if you use this script...
  157.  
  158. ...Yes, I know, what you think:
  159.  
  160.   Har, har, very funny! Publishing a program - everything works
  161.   without paying a penny (idiot) - and then begging for email...pffft!
  162.  
  163. Uuuuh! This is really too much indeed, isn't it? :-}
  164.  
  165. Anyway - do what you want. :-P
  166.  
  167.  
  168. My email address: a.boerner@bbrandes.berlinet.de (Andreas Boerner)
  169.  
  170.  
  171.  
  172. Have fun!
  173.